package domain

import (
	"github.com/hlhutu/gormplus"
	"ruoyi-go/internal/framework/db"
)

/**
 * 用户与角色关联表 SysUserRole
 */
type SysUserRole struct {
	// 用户ID
	UserId int64 `json:"userId" gorm:"column:user_id" form:"userId"`

	// 角色ID
	RoleId int64 `json:"roleId" gorm:"column:role_id" form:"roleId"`
}

// TableName 映射数据库表名
func (m SysUserRole) TableName() string {
	return "sys_user_role"
}

// SysUserRole 模型定义
type sysUserRoleModel struct {
	gormplus.Model[SysUserRole] // 使用泛型封装基本的 CRUD 操作
}

// SysUserRoleModelInst 单例变量初始化
var sysUserRoleModelInst *sysUserRoleModel

// SysUserRoleModel 获取 SysUserRole 单例模型
func SysUserRoleModel() *sysUserRoleModel {
	if sysUserRoleModelInst == nil {
		// 将 SysUserRole 注册到 GORM DB，并初始化
		sysUserRoleModelInst = &sysUserRoleModel{Model: gormplus.NewModel(SysUserRole{}, db.GormDB)}
	}
	return sysUserRoleModelInst
}
